<?php 
//第二应用类
class App{
	public static function run(){
		//初始化框架
		self::_init();
		//自动载入     让__CLASS__当前类，这个里面_auto拥有自动载入功能
		spl_autoload_register(array(__CLASS__,'_auto'));
		//实例化控制器
		self::_appRun();
	}
	

	/*
	 * 初始化页面
	 * */
	private static function _init(){
		//判断session是否开启
		session_id()||session_start();
		//定义POST
		//$_SERVER 超级全局数组 里面有系统的信息
		define('IS_POST', $_SERVER['REQUEST_METHOD']=='POST'? true:false);
		//模块处理
		$module=isset($_GET['m']) ? $_GET['m'] : 'Home';
		define('MODULE', $module);
		//控制器处理
		$controller=isset($_GET['c']) ? $_GET['c'] : 'Index';
		define('CONTROLLER', $controller);
		//执行方法处理
		$action=isset($_GET['a'])? $_GET['a'] : 'index';
		define('ACTION', $action);
		//加载配置项***注意顺序
		//框架配置项
		C(include 'Hdphp/config.php');
		//公共配置项
		C(include 'Application/Common/Conf/config.php');
		//用户配置项
		C(include 'Application/'.MODULE.'/Conf/config.php');
		//设置时区
		date_default_timezone_set(C('DATE_TIMEZONE'));
	}
	
		/*
	 * 会把未找到的类名传入
	 * */
private static function _auto($className){
		//倒数截取10个字符为Controller，那么这个类就是控制器，
		if(substr($className, -10) == 'Controller'){
			//组合控制器路径
			$path = "Application/" . MODULE . "/Controller/{$className}.class.php";
		}else if(substr($className, -5) == 'Model'){
			//组合模型路径
			$path = "Hdphp/Model/{$className}.class.php";
		}else{
			//否则组合tool路径
			$path = "Hdphp/Tool/{$className}.class.php";
		}
		//载入
		require $path;
	}
	 /*
	  * 执行应用类  也就是实例化
	  * */
	  private static function _appRun(){
	  	$controller=CONTROLLER.'Controller';
		//实例化控制器
		$obj=new $controller;
		//方法
		$action=ACTION;
		$obj->$action();
	  }
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}




 ?>